/**
 * 防抖函数实现
 * @param {Function} fn - 需要防抖的函数
 * @param {number} delay - 延迟时间(毫秒)
 * @returns {Function} 防抖处理后的函数
 */
function debounce(fn, delay) {
  let timer = null;
  return function(...args) {
    // 如果存在定时器则清除
    if (timer) clearTimeout(timer);
    // 设置新的定时器
    timer = setTimeout(() => {
      fn.apply(this, args);
    }, delay);
  };
}

export default debounce;